Grease a 9×13-inch baking dish. Add the cubed bread to the dish.
In a medium sized bowl, beat softened cream cheese until smooth. Add powdered sugar, vanilla, and salt. Beat until creamy, then drop spoonfuls evenly over the bread layer.
Sprinkle the grated carrots, walnuts, and raisins (if using) evenly over the bread.
In a large bowl, whisk together the eggs, milk, maple syrup, brown sugar, vanilla, cinnamon, ginger, nutmeg, and salt. Pour the mixture evenly over the prepared bread.
Cover with a lid or plastic wrap and refrigerate for at least 3–4 hours, or overnight for best results. This is optional, but will give you the best texture.
In a medium sized bowl, mix together brown sugar, flour, cinnamon, and salt. Mix in the cold butter until crumbly. Stir in the chopped walnuts.
Preheat oven to 350°F.
Remove the french toast dish from the fridge and sprinkle the crumb topping evenly over the top.
Bake uncovered for 45–55 minutes, until golden brown on top.
Optional Cream Cheese Drizzle: Whisk together cream cheese, milk, powdered sugar, and vanilla until smooth and pourable. Drizzle over the warm french toast bake.
Serve warm with optional maple syrup or a dusting of powdered sugar.