Preheat the oven to 350 degrees. Grease and lightly flour three 9-inch round cake pans. Set them aside.
To make the cake, in a large mixing bowl cream the butter and sugar thoroughly until light and creamy.
Add the egg yolks one at time, beating well after each addition.
In a large bowl, sift together the flour, baking powder and salt.
Add the flour mixture to the butter and sugar mixture, alternating with the milk, beating after each addition. Stir in the coconut and vanilla extract.
In another bowl, beat the egg whites until they form stiff peaks.
Fold them into the cake batter. Divide the batter evenly into the prepared cake pans.
Bake for 30 minutes, or until a toothpick inserted into the middle of each layer comes out clean. Transfer the pans from the oven to wire racks.
Allow to cool in their pans for 10 minutes, then unmold them onto the wire racks to cool completely.
To make the frosting, in a large saucepan, combine the sugar, corn syrup and boiling water.
Bring to a boil over medium-low heat, and cook until the mixture spins thread and reaches 242 degrees on a candy thermometer.
In a large bowl, beat the egg whites until they form stiff peaks.
Pour the sugar and syrup mixture over the egg whites, beating constantly.
Add the vanilla extract, then cool the frosting until firm enough to spread.
Transfer one cake layer to a serving platter; spread 1/3 of the coconut frosting on top. Sprinkle coconut on top.
Top with another cake layer and spread with the second third of the frosting. Sprinkle more coconut on top.
Top with the remaining cake layer, then spread the remaining frosting on the top and sides of the cake.
Sprinkle with the remaining coconut, pressing gently into the frosting if you want to.