First prepare the streusel topping by combining the flour with the brown sugar and salt, breaking the sugar with a fork. Add the butter and stir in with a fork, or use your fingers to crumble up the mixture. Set aside.
To prepare the muffin batter, first combine the flour, baking powder, cinnamon, ginger, allspice and salt in a large bowl. Whisk to combine properly. At this point, I like to stir in the grated carrots.
In another bowl add the eggs, vegetable oil, buttermilk, the sugars, vanilla extract and whisk well or use your mixer to mix properly.
Using a spatula, gently fold the wet ingredients into the dry mixture until just combined. Be careful not to overmix, as this can make the muffins tough.
Cover the bowl with a towel or plastic wrap and let the muffin batter rest for 15 minutes.
Preheat oven to 425ºF. Line 2 12-cup muffin pans with 6 paper liners each, meaning you'll only fill every other muffin cup. Spray the lined muffin cups with cooking spray. This will ensure paper liners come off smoothly from muffins.
Using an ice cream scoop, fill the lined muffin cups all the way to the top with batter. Sprinkle each muffin with some of the streusel topping.
Transfer the muffin pans to the oven on the middle rack and bake for 7 minutes at 425ºF, then turn the temperature down to 350ºF and bake for another 16-20 minutes or until muffins are done. To test for doneness, insert a toothpick in the center of a muffin and if it comes out clean the muffins are baked.
Cool in the pan for 15 minutes before removing.