To make the cake: Preheat oven to 375° with rack in the center. Line two 8" round cake pans with greased parchment paper. In a large bowl, mix together coconut flour, baking powder and salt; set aside. Whisk yolks with vanilla extract; set aside. Using an electric mixer, beat egg whites until foamy, then slowly whisk in sugar. Continue to beat until whites are shiny and hold stiff peaks. Fold yolk mixture into whites, then gradually sift in flour mixture, folding gently until incorporated. Divide batter between prepared pans, leveling tops of cakes with a spatula, and bake 20 minutes until lightly puffed and golden. Allow to cool completely before removing from pans.
To make the filling: Combine pineapple, sugar, and ½ cup water in a large saucepan over medium high heat. Bring to a boil and reduce heat slightly to maintain a steady simmer. Cook for 20 minutes, until liquid is reduced and syrupy. Combine the cornstarch with 2 tbsp. water and whisk into pineapple mixture. Cook an additional 2-3 minutes until filling has a thick, gelatinous texture. Remove from heat and cool slightly. Process in bowl of food processor 20-30 seconds until pineapple has a uniform, slightly pulpy consistency. Transfer to a medium bowl, cover, and chill completely.
To make the frosting: Using an electric mixer, beat butter and confectioner's sugar until pebbled and grainy. Stir in vanilla and coconut milk, and beat on high until thick and creamy.
To assemble the cake: Remove cake layers from pans and, if necessary, trim to even the tops of the layers. Place the first layer on a cake stand or serving plate and spread evenly with ¾ cup of cooled pineapple filling, working from the center out and leaving a ½" border around the edge. Top with the second cake layer, turned upside-down so that the bottom of the cake faces up. Press down gently to adhere the two layers together. Starting at the top and moving down along the sides, spread a thin layer of frosting over entire cake before going back and adding a second, thicker layer. Make a wide, shallow indentation in the frosting on top of the cake, allowing a gentle ridge to form all around the top edge, almost like a dinner plate. Press the shredded coconut onto the sides and top ridge of the cake, and spread ½ cup of pineapple filling into the top indentation. Reserve unused pineapple for another use.