Preheat your oven to 350°F (175°C). Grease and flour, or line an 11 x 7-inch rectangle pan with parchment paper.
In a large bowl, whisk together the flour, sugar, baking powder, and salt.
Add the softened butter, coconut milk, eggs, and vanilla extract to the dry ingredients. Mix with an electric mixer on medium speed for about 2 minutes until well combined.
Gently fold in the shredded coconut by hand using a spatula or wooden spoon until evenly distributed.
Pour the batter evenly into the prepared cake pan. Bake for 25-30 minutes, or until a toothpick inserted into the center comes out clean. Remove from the oven and let the cake cool in the pan for about 10 minutes before transferring it to wire racks to cool completely.
In a mixing bowl, beat the softened butter until creamy. Gradually add the powdered sugar, mixing well after each addition. Add coconut milk and beat until the frosting is light and fluffy. Fold in shredded coconut, leaving some for sprinkling on top
Once the cake is completely cool, place it on a serving plate. Spread a layer of frosting on top. Optionally, layer any remaining cake and frost the top and sides of the entire cake. Sprinkle additional shredded coconut on top and sides, if desired.
Slice and enjoy your fluffy coconut cake!