Preheat oven to 350°. Using a rimmed baking sheet, evenly distribute the shredded coconut in a single layer and toast on center rack of the oven for 5 minutes or until golden-brown.
Using two 9-inch cake pans, grease and flour them, using a parchment paper cut-out for the bottom of the pans. (See recipe notes).
Combine the toasted coconut, salt, baking powder, baking soda, ginger, and cinnamon in a medium-size mixing bowl and stir well. In a separate mixing bowl, combine the shredded carrots and buttermilk and mix well.
Using an electric mixer on high speed, beat eggs, granulated sugar, brown sugar, and vanilla in a large bowl until pale and thick, about 4 minutes. Reduce speed to medium-low and gradually stream in oil. Add dry ingredients in 3 additions, alternating with carrot mixture in 2 additions, beginning and ending with dry ingredients; beat until smooth. Divide batter between prepared pans; smooth top.
In a large mixing bowl, use a hand-held mixer and beat the eggs with the granulated sugar, brown sugar, and vanilla extract, on high for 4 minutes until the mixture is pale and thick. Reduce mixer speed and alternately add the dry ingredients and carrot mixture, a little at a time and beat until smooth. Evenly divide and distribute the batter into the prepared cake pans and smooth the top.
Place cake pans on the center rack inside of the oven and then bake for 40-45 minutes or until a toothpick inserted in the center comes out clean. Be sure to rotate the cake pans, halfway through. Remove the cake pans from the oven and place on a wire rack and allow to cool for 15 minutes. Use a paring knife so separate sides of cake from the pan and then invert the cakes onto the wire cooling rack and peel off the parchment paper. Allow the cake layers to cool completely.
While the cake layers are cooling, prepare the cream cheese frosting. Place cream cheese and butter in a medium-size mixing bowl and beat with an electric mixer on high speed until mixture is smooth, about a minute. Stir in the vanilla extract and then gradually add the powdered sugar. Use an electric mixer and beat until cream cheese frosting is light and fluffy. This should take about two minutes.
Spread a spoonful of the frosting on a serving platter and then place the bottom layer of the cake, dome-side (top) down. Spread about a cup of frosting evenly over the top. Place the second layer of cake on top of first, again, dome-side down. Spread about two cups of frosting over the top and sides and then chill the cake for 30 minutes to allow the frosting to set.
Finally, spread the rest of the frosting over the sides and top of the cake and swirl it to make it pretty. Sprinkle the top of the cake with additional coconut shreds and press some of them into the sides of the cake. Garnish center of cake with a small amount of shredded carrots if desired. Allow cake to chill for a least 30 minutes, or overnight to allow the frosting to set.
See Scott's great video demonstration on how to grease and flour cake pan.May substitute coconut oil or olive oil for the vegetable oil.For a gluten-free version, substitute all-purpose gluten-free flour for the regular (or cake) flour and add a teaspoon of xantham gum.Make cupcakes from this recipe and bake at 350° F. for 18 minutes.Convert this carrot cake into a sheet cake using a 9" x 13" greased baking dish. Reduce baking time to 35 minutes.