Preheat oven to 350 degrees F. Grease and flour 3 (9-inch) cake pans.
Using an electric mixer, cream butter until fluffy. Add sugar and continue to cream well for 6 to 8 minutes. Add eggs, 1 at a time, beating well after each addition. Add flour and coconut milk alternately to creamed mixture, beginning and ending with flour. Add vanilla and continue to beat until just mixed. Divide batter equally among prepared pans. Level batter in each pan by holding pan 3 or 4-inches above counter, then dropping it flat onto counter. Do this several times to release air bubbles and assure you of a more level cake. Bake for 25 to 30 minutes or until done. Cool in pans 5 to 10 minutes. Invert cakes onto cooling racks.
Stir together sugar, sour cream, milk, and coconut in a bowl until well blended. Add first cake layer onto pedestal. Using the wrong end of a wooden spoon, poke holes approximately 1-inch apart until entire cake has been poked. Spread a third of filling mixture on cake layer. Top with second layer, repeat process. Top with last layer and repeat process again.
Place sugar, cream of tartar or corn syrup, salt, water, and egg whites in the top of a double boiler. Beat with a handheld electric mixer for 1 minute. Place pan over boiling water, being sure that boiling water does not touch the bottom of the top pan. Beat constantly on high speed with electric mixer for 7 minutes. Beat in vanilla. Frost the top and sides of the cake. Sprinkle top and sides of cake with coconut. Garnish with artificial holly, if desired.
As each layer is stacked, stick them with toothpicks to prevent cake from shifting.