Preheat your oven to 350°F (175°C). Grease and flour an 11 x 7-inch rectangular pan, or line it with parchment paper to prevent sticking.
In a large mixing bowl, whisk together the flour, sugar, baking powder, and salt until evenly combined.
Add the softened butter, coconut milk, eggs, and vanilla extract to the dry ingredients. Using an electric mixer, beat on medium speed for about 2 minutes until the batter is smooth and well incorporated.
Using a spatula or wooden spoon, gently fold in the shredded coconut until evenly distributed throughout the batter.
Pour the cake batter evenly into the prepared pan. Bake for 25-30 minutes, or until a toothpick inserted into the center comes out clean. Let the cake cool in the pan for about 10 minutes, then transfer it to a wire rack to cool completely.
In a mixing bowl, beat the softened butter until creamy. Gradually add the powdered sugar, mixing well after each addition. Pour in the coconut milk and continue beating until the frosting is light and fluffy. Finally, fold in the shredded coconut for extra texture.
Once the cake is completely cool, spread the coconut frosting over the top. If you’d like, you can layer the cake by cutting it in half horizontally, adding frosting in between, and covering the top and sides. Sprinkle extra shredded coconut over the frosting for a beautiful finishing touch.
Slice into squares and serve with a warm cup of coffee or tea. This cake is best enjoyed fresh, but you can store leftovers in an airtight container at room temperature for up to 3 days or in the fridge for up to 5 days.