1. Preheat oven to 350°F.
2. Grease and flour two 9-inch layer cake pans and set aside.
3. Beat egg whites until frothy. Add 1/2 cup sugar and beat until stiff and glossy but not dry.
4. Combine flour, 1 cup sugar, baking powder, salt and shortening in large mixer bowl. Add milk and blend on low speed for 30 seconds, then beat 2 minutes on medium speed. Carefully fold in egg whites and coconut with vanilla or almond extract.
5. Pour in to pans and bake 30-35 minutes. Cool.
6. While cakes are cooling, prepare Sugarplum Filling. Blend egg yolks and sour cream. Stir in granulated sugar. Cook over low heat, stirring until mixture begins to simmer. Simmer for several minutes until mixture thickens. Remove from heat and stir in remaining ingredients. Cool before adding between cake layers.
7. Prepare Sugarplum White Icing. Combine sugar and water in saucepan. Cook over medium heat, stirring to dissolve sugar and until mixture comes to a boil. Pour syrup over remaining ingredients and beat until frosting is stiff and holds well-defined peaks.
8. Spread Sugarplum Filling between layers and frost top to within 1-inch of edge.
9. Frost entire cake with Sugarplum White Icing and sprinkle with toasted coconut if desired.