Prepare the bread: If using fresh bread, cut into 1-inch cubes and dry in a 300°F oven for 15-20 minutes. Day-old bread can be used as is.
Grease a 9x13-inch baking dish with butter. Add the cubed bread and spread into an even layer.
In a large bowl, whisk eggs until smooth. Add milk, cream, sugar, vanilla, cinnamon, nutmeg, and salt. Whisk until fully combined and sugar is dissolved.
Slowly pour the custard evenly over the bread cubes. Gently press down on the bread to help it absorb the liquid.
Cover the dish tightly with plastic wrap or foil and refrigerate for at least 4 hours, preferably overnight (8-12 hours).
In a medium bowl, combine flour, brown sugar, cinnamon, and salt. Cut in cold butter with a pastry cutter until mixture resembles coarse crumbs.
Remove casserole from the fridge and let it sit on the counter for 20-30 minutes while preheating the oven to 350°F (175°C).
Remove plastic wrap and sprinkle streusel topping evenly over the entire casserole surface.
Bake uncovered on the center rack for 45-55 minutes, until the top is deep golden brown and the center is set (a knife inserted in the center should come out without wet liquid).
Let rest for 5-10 minutes before serving. Dust with powdered sugar, drizzle with maple syrup, and serve warm with fresh berries.