Prepare your cake pans by lining the bottoms with parchment paper, and greasing and lightly flouring the sides. Preheat oven to 350° F.
Stir (with a whisk) flour, baking powder, baking soda and salt in a medium bowl and set aside.
In the bowl of an electric mixer, beat eggs and sugar on medium speed until slightly thickened and a light cream color (about 2 minutes).
Continue mixing on low speed, and add the oil and vanilla.
Add in the sour cream and pineapple and mix until fully incorporated.
Add the flour mixture and blend just until combined and smooth.
Pour batter into the prepared pans, dividing the batter between the pans as evenly as possible.
Bake until the cakes have a slight dome, are golden brown, and a toothpick inserted in the center comes out clean, or with a few moist crumbs. Approximate bake times are 22 minutes for cupcakes, 35-40 minutes for 6" cakes (divided into three pans).
Allow cakes to cool in pans 15-30 minutes, then remove from pans, wrap in plastic wrap and freeze cakes about 30 minutes. This will help the cakes be firm enough to cut and level, and be easier to stack.
For Coconut Cream Cheese Frosting
In the bowl of an eclectic mixer, beat butter until fully smooth.
Add cream cheese, and beat until smooth and fully combined.
Add powdered sugar, one cup at a time. Add vanilla extract and coconut extract after adding 1 or 2 cups of sugar.
While mixing, slowly add heavy cream or dark rum
Continue to beat and additional 30 seconds or so until nice and fluffy.
Use frosting at once, or keep refrigerated. In warm weather, or if your butter and cream cheese were warm, you may need to put the frosting in the refrigerator up to 30 minutes to help it firm up, especially if you plan to pipe it on cupcakes.
Once the cakes have chilled in the freezer (as directed above), use a large serrated knife to level the cakes as needed. Layer the cakes with a layer of the Coconut Cream Cheese frosting between each layer. Spread a thin layer of icing around the sides and top of the cake (known as a "crumb coat"). This layer of icing does not need to be perfect, and it's ok if it has a few crumbs in it.
Place entire (thinly frosted cake) in the freezer for 15-30 minutes, or until the cake and icing are firm. Remove cake from freezer and spread a final layer of frosting all over the cake.
If desired, coat the sides of the cake with toasted coconut. To toast coconut, spread about 2 cups of coconut onto a baking sheet and bake at 350*F. for 5-7 minutes, checking every minute or so after the first 3 minutes.
Decorate cake with fresh pineapple or maraschino cherries.
Also makes: a two layer 8" or 9" cake or 24 cupcakes