Preheat oven to 350°. Line bottoms of two greased 9-in. round baking pans with parchment or waxed paper; grease paper.
In a large bowl, cream butter and sugar until light and fluffy. Add eggs, one at a time, beating well after each addition. Beat in vanilla. In another bowl, mix flour, baking powder and salt; add to creamed mixture alternately with milk, beating well after each addition.
Transfer to prepared pans. Bake until a toothpick inserted in center comes out clean, 22-27 minutes. Cool in pans 10 minutes before removing to wire racks; remove paper. Cool completely.
In a small bowl, mix filling ingredients until blended. Using a long serrated knife, cut each cake layer horizontally in half. Place one cake layer on a serving plate. Top with a third of the filling. Repeat twice. Top with remaining cake layer. Refrigerate while preparing frosting.
For frosting, in a large heavy saucepan, combine sugar, water, egg whites and cream of tartar. Beat on low speed for 1 minute. Place pan over low heat; continue beating on low until a thermometer reads 160°, 8-10 minutes. Transfer to a large bowl. Add vanilla; beat on high until stiff glossy peaks form, about 7 minutes.
Spread over top and sides of cake. If desired, sprinkle with additional coconut. Refrigerate, covered, until serving.