Preheat the oven to 170 C. Lightly grease a rectangular 8.5x6.5 inch baking pan and set aside. You could also use an 8 inch square pan, the cake might be slightly thinner.
Make sure all your ingredients for the sponge are measured and kept ready. Sift the flour and salt (if using) and set aside. Melt the butter in the microwave or on the stove and set it aside to cool.
Now add a little water to a saucepan and bring it to a simmer over medium heat. While this is happening, combine the eggs, sugar and vanilla in a mixing bowl that fits neatly over the saucepan, without its base touching the water. Bring the heat down to low and place the bowl over the saucepan. Using a balloon whisk, whisk continuously for 5 to 7 minutes until the mixture is slightly warm, frothy and paler (see photos below). This double boiler step warms the eggs gently, creating more air and also helps dissolve the sugar so they beat better and become fluffy easily.
Pour this warm mixture into the bowl of a stand mixer fitted with the whisk attachment. Beat on high speed for about 5 minutes until the mixture has tripled in volume, thickened and leaves ribbons when you lift the whisk up (see photos below). I found the stand mixer bowl too large for a double boiler which is why I transfer the mixture after the above step, but if yours fits easily, you can just use the same bowl for both. You can also do this step with a hand mixer as long as your bowl is large and deep enough to hold the mixture as it increases in volume.
Now gently add half of the sifted flour to the bowl and fold it in using a silicone spatula. Do not mix vigorously, gently take your spatula to the bottom of the bowl, bring it up cutting through the airy batter and repeat. Add the remaining flour and do the same. While the batter will naturally deflate a little, don't worry about fully incorporating the flour as you fold. If a few streaks of it are visible, that's ok.
Slowly drizzle in the melted butter and once again fold gently but quickly to combine so that the butter doesn't settle at the bottom. Make sure your spatula goes right to the base of the bowl to get it all folded in.
Immediately pour the batter into the prepared pan and bake for 25 to 30 minutes until browned on top and when you press the surface lightly, it should spring back. A little over-mixing could cause the top to dome slightly and then fall as the cake cools. If this happens, don't worry, the texture of the cake isn't affected.
Let the cake cool completely in the pan at room temperature, at least 3 hours. Soaking the cake while it's still warm will make it soggy.
To make the tres leches mixture, combine all the three milks together in a bowl and whisk till well blended.
Poke multiple holes all over the cooled cake (still in the pan) with a fork, making sure you're poking it right to the bottom. Reserve 1/3 cup of the tres leches mixture from above, and gradually pour the rest over the cake, a few spoons at a time, waiting till it's almost fully absorbed before pouring more. It might pool on the edges and surface which is ok.
Once done, refrigerate the cake at least overnight (it gets better the longer you chill it). By the morning, the liquid will have been fully absorbed.
Beat the chilled cream and one tablespoon icing sugar with a hand mixer on high speed until soft, rounded peaks form. Transfer to the fridge to keep it chilled. Now beat the coconut milk with the second tablespoon of icing sugar until it thickens and also forms peaks, but they will likely not be very firm, which is ok. Add this to the whipped cream and fold together to combine. It may deflate slightly, so place this combined cream back in the fridge to keep it chilled. I tried beating the coconut milk and whipping cream together, but it didn't whip up as well. Doing them separately and then combining worked better.
Now spread the coconut out onto an un-greased baking tray and bake for 5 to 8 minutes at 175 C, until golden-brown and toasty. Stir often to prevent the coconut from burning. Set aside to cool completely.
When ready to serve, spread the chilled cream all over the chilled cake (the cream may not be super firm, but as long as it's not runny it's all right). Top with the diced mangoes, and then sprinkle the coconut all over. Refrigerate again for 15 minutes. Then slice and serve each piece with a little of the reserved tres leches mixture. This not only adds flavour but compensates for any parts of the cake that may have absorbed the liquid unevenly.
Store the cake for 3 to 4 days in the fridge and you'll notice it becomes more moist and delicious! Happy baking!