Prepare the Cake Layers: Pulse shredded coconut in a food processor until finely chopped, about 20 times. Transfer to a bowl. Heat heavy cream in a small saucepan over medium just until warm and beginning to release steam, about 5 minutes. Pour warmed cream over coconut, and cool completely, about 30 minutes.
Preheat oven to 350°F. Beat granulated sugar and butter with an electric mixer on medium speed until light and fluffy, about 2 minutes. Add egg yolks, 1 at a time, and beat until blended after each addition. Add vanilla, and beat just until smooth. Whisk together flour, baking powder, baking soda, and salt in a medium bowl. Add flour mixture, in batches, alternately with cream mixture, beginning and ending with flour mixture. Beat on low speed until blended after each addition.
Beat egg whites in a bowl with an electric mixer fitted with whisk attachment on high speed until stiff peaks form. Stir about one-third of egg whites into batter; fold in remaining egg whites. Pour batter into 4 greased (with shortening) and floured 8-inch round cake pans.
Bake in preheated oven until a wooden pick inserted in center comes out clean, 25 to 30 minutes. Cool in pans on wire racks 20 minutes; remove from pans to wire racks, and cool completely, about 30 minutes.
Prepare the Filling: Stir together half-and-half and next 3 ingredients in a small saucepan. Cook over medium-high, whisking constantly, just until mixture thickens and comes to a boil, 10 to 12 minutes. Remove from heat, and whisk in butter and rum until smooth. Transfer to a glass bowl, and place plastic wrap directly on warm custard (to keep a film from forming). Cool completely, about 30 minutes. Chill until ready to use.
Prepare the Frosting: Whisk together granulated sugar, milk, flour, and salt in a medium saucepan. Cook over medium, whisking constantly, until mixture thickens, about 10 minutes. Immediately pour mixture into a medium-size metal bowl, and cool completely, about 30 minutes, stirring occasionally.
Beat butter with an electric mixer on medium speed until smooth. Slowly add cooled custard to butter mixture, 1/4 cup at a time, and beat until smooth after each addition. Add coconut extract and vanilla, and beat until smooth. Spoon 1 cup of the Frosting into a ziplock plastic freezer bag, snip off 1 corner for piping.
Assemble Cake: Place 1 Cake Layer on a cake plate, and pipe a 1/2-inch-thick ring of Frosting around the outer edge of the layer. Spread about 2/3 cup of the Filling over the layer. Repeat with second and third Cake Layers. Place the final layer on top, and frost sides and top with remaining Frosting. Garnish with Tree Cookies and Royal Icing, as directed below in "Garnish How-To."
Make the Tree Cookies: Roll out 1 (5-oz.) pkg. refrigerated sugar cookie dough to 1/8-inch thickness. Use 1 3/4-inch and 2 3/4-inch tree cookie cutters to create about 18 small cookies. Use 2 3/4-inch, 4-inch, and 5 1/2-inch tree cookie cutters to make about 5 large cookies. Bake the cookies at 350° for 7 to 9 minutes. Cool on a wire rack.
Decorate the Tree Cookies: To make Royal Icing, beat 16 oz. powdered sugar, 2 tsp. meringue powder, and 5 to 6 Tbsp. warm water with an electric mixer on high speed, 5 minutes. Pipe the icing onto cooled cookies. Top with white coarse sanding sugar and white Disco Dust.
Embellish the cake: Drag a 1-inch-wide spatula up and down the sides of the frosted cake to create ridges. Arrange the large tree cookies on the top of the cake. Press the small Tree Cookies into the sides of the cake. Top the cake with 1/2 cup shredded sweetened coconut flakes for "snow."