Preheat the oven to 350°. Grease 2 9-inch round cake pans with some cooking spray. Sprinkle a couple of tablespoons of flour in each greased pan. Shake the pan gently to spread flour around evenly on the bottom and the sides. Turn the pans over and pat the excess flour out of the pan.
Grate carrots on a fine grater and add it to the large mixing bowl.
Add eggs, sugars, and oil. Whisk very well until completely combined.
Add flour, baking soda, baking powder, and cinnamon. Whisk together well.
If using nuts, fold in the chopped walnuts or pecans.
Split the batter between two cake pans evenly. If available, use a kitchen scale to make sure batter amount is even in each pan.
Bake for 30-35 minutes, check with a toothpick to make sure it's done. Be careful not to overcook or the cake will be dry.
Let cakes cool in the pan for about 15 minutes. Run a butter knife along the edge of the cake layer to help separate it from the pan. Gently tap the corners of the cake pan to loosen the cake a bit. Turn the pan over to take the cake layers out of the pans.
Cool cake layers completely on the wire rack before frosting.
Combine softened butter and cream cheese in the bowl of the electric mixer. Beat for 3-4 minutes on medium-high speed.
Scrape sides and bottom of the bowl and add powdered sugar and vanilla extract. Starting on low speed and then gradually bringing it up to medium-high, beat for another 3-4 minutes.
Use a long serrated knife to even the bottom or both layers of the cake by slicing off the dome. KEEP the dome that you sliced off and crumble it to use for decorating the cake.
Frost the bottom cake layer on top and stack the second layer on top. Then frost the second layer and the sides.
Use the cake crumbs to decorate the cake or you can use it to make cake pops.