Make the Cake Layers: Preheat oven to 350°F. Butter and flour two 9-inch round cake pans. Set aside.
In a medium-sized bowl, combine flour, baking powder, baking soda, and salt. Set aside. In a small bowl, mix together buttermilk, cream, and extracts. Set aside. In the bowl of a stand mixer, cream together sugar and butter until well combined, about 3 minutes. Add eggs one at a time and beat on medium high until light and fluffy, about 3 minutes.
On low speed, add half the dry ingredients and mix until just combined. Add the wet ingredients and mix until fully incorporated. Pour in the last of the dry ingredients; mix until just combined. Fold in coconut, and divided batter evenly between cake pans.
Bake, rotating halfway through, until a toothpick inserted comes out clean, about 25 minutes. Allow to cool completely in pans before removing and leveling the cake layers by cutting off the domes with a serrated knife. Then cut each layer in half, creating 4 thin layers.
Make the Pineapple Filling: Combine ingredients in a saucepan over medium heat. Stir constantly until sugar is dissolved and the mixture thickens into a glossy filling that boils, leaving a trail on the bottom of the pan, about 10 minutes. Pour into a glass container and chill in the refrigerator.
Make the Frosting: Beat together cream cheese, butter, and sour cream until smooth. Add powdered sugar and vanilla; mix on low until just combined, then beat on medium high for 3 minutes.
Assemble the Cake: Place one layer on a cake stand or platter. Spread half of the Pineapple Filling across the surface. Add another layer and evenly spread a heaping 1/2 cup of the Frosting. Add another layer and spread the remaining Pineapple Filling. Add the final cake layer and cover the cake all over with remaining Frosting. Gently sprinkle and press the toasted coconut into the frosting. Garnish with candied pineapple pieces.