Preheat the oven to 350 degrees F (175 degrees C). Grease and flour a 9-inch square pan.
Cream butter and sugar together in a large bowl. Beat in eggs, one at a time; stir in vanilla extract.
Combine flour and baking powder in a separate bowl; add to the creamed mixture and mix well. Mix in the coconut milk until batter is smooth. Scrape into the prepared pan and smooth the top flat.
Bake in the preheated oven until the top springs back when lightly touched, 30 to 40 minutes. Cool on a wire rack for 5 minutes. Run a table knife around the edges to loosen. Invert carefully onto a cooling rack. Let cool, about 30 minutes.
Meanwhile, combine crushed pineapple, juice, and cornstarch in a saucepan. Whisk until cornstarch is smooth. Heat over medium heat, stirring constantly, until filling has thickened and just barely starts to boil. Remove and set aside to cool.
Cream confectioners' sugar and shortening together in a large bowl until light and fluffy. Beat in vanilla extract. Gradually add coconut milk, beating until smooth; you may need to use more or less milk depending on the desired thickness of the icing.
Cut the cooled cake in half to form two 4 1/2x9-inch pieces. Spread pineapple filling on top of one half. Place the other half, top-side down, on top of the filling. Frost the sides and top with icing, then sprinkle coconut all over icing, pressing gently so it sticks.