Set out the cream cheese and butter for the frosting to allow to soften. Heat oven to 350 degrees. Spray three 8-inch round cake pans with cooking spray and line the bottom of the pans with parchment paper. I like to do this by tracing the cake pan on parchment paper and cutting it out to ensure it fits well. Alternatively, you can use two 9-inch round cake pans.
In a skillet over medium heat, toast the chopped walnuts until fragrant. Stir frequently to prevent burning. This should only take a few minutes.
In a mixing bowl, sift together the measured flour, baking soda, salt and spices and put aside.
In another mixing bowl, whisk together the eggs, pineapple puree, dark brown sugar, buttermilk, vegetable oil, white sugar and vanilla until well combined. Gently fold in the shredded carrots, coconut and toasted walnuts. Stir in a couple scoops of flour at a time until all the dry ingredients are mixed into the batter.
Pour into prepared cake pans and bake for 25 minutes. Insert a toothpick. If it comes out clean, it's ready, but if the batter is still wet, give it another couple minutes and check again. For 9-inch pans, you'll probably need closer to 30 minutes.
Run a knife along the side of the pans. Let cool in the cake pans for about 10 minutes and then turn out on wire racks to completely cool. While cooling, make the coconut cream cheese frosting.
For the frosting, beat together the softened cream cheese, butter, vanilla extract and pinch of salt until fluffy. Add about a ½ cup of powdered sugar at a time and beat until well combined. Periodically, scrape the side of the bowl. Once all the powdered sugar is incorporated, stir in the coconut.
Spread frosting on top of one cooled cake, place another cake on top and repeat if making three layers. Cover the layered cake with the remaining frosting. Store covered. Serve and enjoy!