Make the Carrot Cake: Preheat oven to 350 degrees F. Grease three 9-inch cake pans, line the bottoms with a round of parchment, grease the parchment, then flour the pans and tap out the excess. Set aside.
In a medium bowl, whisk together the flour, baking powder, baking soda, salt, and cinnamon.
In a large bowl, whisk together the eggs, sugars, vegetable oil, and vanilla extract until thoroughly combined and there are no lumps of brown sugar. Add the flour mixture and, with a rubber spatula, gently stir until mostly combined. Add the carrots, pineapple, pecans, raisins and coconut and fold together until thoroughly combined.
Divide the batter evenly between the three prepared cake pans and bake until a toothpick inserted in the center comes out with clean, 22 to 28 minutes. Cool the cakes in the pans for 10 minutes, then turn out onto wire racks to cool completely.
Make the Cream Cheese Frosting: Using an electric mixer, beat the butter, powdered sugar, vanilla, and salt on low speed until smooth, then mix for an additional 2 minutes, scraping down the bowl as needed.
Increase the speed to medium-low and add the cream cheese one piece at a time and mix until smooth, then mix for an additional 2 minutes.
Assemble the Carrot Cake: Place one cake layer on a serving platter and spread with 1 cup of the cream cheese frosting. Top with a second cake layer and again spread with 1 cup of the cream cheese frosting. Place the final cake layer on top, top-side-down (so the bottom of the cake is actually facing up), then frost the top and sides with the remaining cream cheese frosting and garnish the sides with chopped pecans, if desired. Serve immediately or refrigerate, covered, until ready to serve. The cake can be made up to 1 day in advance and leftovers can be stored in the refrigerator, in an airtight container for up to 1 week.