Pre-heat the oven to 350°F and place the oven racks at the center of the oven.
Note: You can make a cake or cupcakes using this recipe. If you’re making cupcakes, omit the filling. In addition, you will notice that the entire time you are mixing the batter that you will be adding air. At the end, you will tap it out.
Sift the flour twice through into a small mixing bowl. Set aside.
In a large mixing bowl using an electric mixer on medium speed, beat the butter until smooth and creamy. Add the sugar in a slow stream on medium speed and mix until light and fluffy. In a separate bowl, whisk the eggs until their volume almost doubles. With the mixer on medium speed, slowly stream the eggs into the butter mixture until well combined.
Next, add the coconut milk and the flour a third of each at a time, beginning with the flour, as follows: take 1 cup of the sifted flour and sift it again into the batter bowl. Mix on medium speed, until combined. Add 1/3 cup coconut milk and mix until combined. Repeat until all of the flour and coconut milk have been added.
Add the lemon juice and mix until combined. (You add the lemon juice last because lemon juice will cook eggs.)
Butter and flour three 9-inch cake pans or three 6-cup cupcake tins. Once you have poured the batter into the bakeware, tap them on the counter a few times. Air bubbles will rise to the surface of the batter and break.
For cake, bake for 30-35 minutes; for cupcakes, bake for 20-25 minutes. Set aside and let cool.
If you’re making a cake, make the filling: Whisk the egg yolks in a small bowl and set aside. In a medium (2 quart) saucepan, combine the sugar, butter, cream and egg yolks. Cook over medium heat, 12-15 minutes, stirring occasionally, until the mixture thickens, like pudding. Be careful not to let the mixture come to a boil or let it stick to the bottom of the saucepan. Remove from the heat and stir in the flaked coconut. Transfer the filling to a bowl and refrigerate for 2 hours.
Next, make the frosting: in a medium saucepan, give the sugar and corn syrup a quick stir with a spoon (mix them together, but they will not combine). Cover and bring to a boil over medium heat. Do not stir again – only stir once in the beginning. Once the mixture is boiling, take the lid off the pan and continue to boil for 10-12 minutes (this timing is approximate). If you have a candy thermometer, it should be at least 242°F but not more than 244°F; if you don’t have a candy thermometer, the mixture is done when it reaches the “soft ball stage,” the point at which it will form a soft ball if dropped into cold water. The safest way to check for the soft ball stage is to take a glass of ice water and pour a drop of the boiling syrup in, then reach into the water and grab the drop of syrup and squeeze it between your thumb and for