Preheat oven to 350 degrees Fahrenheit.
Whip together granulated sugar, vegetable oil and eggs.
Add flour, baking powder, baking soda, salt, cinnamon and combine.
Fold in carrots, coconut, vanilla and pineapple to mixture. If using nuts add to the batter at this time. I only add the nuts to the top of the frosted cake.
Grease 2 9-inch bake pans and line with parchment paper rounds.
Pour batter evenly into bake pans. Gently shake and tap on counter once to remove any air bubbles.
Bake for 40-45 minutes. Before removing from oven perform the toothpick test to make sure cake is done (Dip toothpick into the center of the cake. Remove toothpick. If it comes out clean the cake is done. If there is cake batter on it continue to bake for a few more minutes and retest until toothpick comes out clean).
Remove from oven. Let cakes cool in pan for 10 minutes. Invert and continue to cool on a baking rack. Let cakes cool completely before icing.
Beat butter and cream cheese in a large bowl until smooth. Add vanilla. Mix until incorporated.
Gradually add powdered sugar while mixer is on low speed. Once all sugar is added mix on medium speed until smooth. If the frosting seems too soft refrigerate it for a few minutes prior to icing the cooled cake.
This icing recipe will be enough to ice two 9" round cakes including the middle. You will also have enough to decorate by piping the bottom and top of cake. I use the Wilton Tip 32 for piping both top and bottom edge of cake.
Place first cake layer on a solid plate. Using an angled spatula add a layer of icing to top of this cake and smooth out.
Add second cake on top. Ice both cakes (top and sides).
Using the Wilton piping kit and tip 32 apply border to bottom and top of cake.
Enjoy!