Preheat the oven to 350°. Grease two 8" cake pans with baking spray and line with parchment paper.
In a large bowl of a stand mixer, beat the sugars and oil until combined. Add the buttermilk and mix until smooth.
Add the eggs one at a time, mixing after each.
Mix in the vanilla, drained pineapple, carrots and coconut on low speed just until everything is incorporated.
Add the flour, baking soda, cinnamon and salt and mix on low to combine.
Divide the batter between the two prepared pans. Bake for 38-40 minutes.
Allow the cakes to cool in the pans for about ten minutes and then carefully, using oven mitts if the pans are still warm, invert each layer onto a sheet of plastic wrap. Wrap tightly and place in the freezer until you're ready to assemble your cake. I store layers in the freezer for up to a week.
Frosting
Beat the cream cheese and butter together using a stand mixer or handheld mixer until smooth. Gradually add the powdered sugar. Mix in the vanilla and salt.
Assembly
Remove the cake layers from the freezer about 30 minutes before you want to assemble the cake. I take them out to thaw while I prepare my frosting. You want the layers to be cold, but not completely frozen to decorate.
To assemble the cake, place a dab of frosting on your cake board or plate and then place your first layer of cake on top. Spread a thick layer of frosting on top. Stack the second layer top side down. Use the rest of the frosting to cover the sides and top of the cake.
Cake should be stored in the refrigerator, but is best served at room temperature. Remove the cake from the refrigerator about 30 minutes before serving.