Prepare Filling: Whisk together first 3 ingredients in a heavy saucepan. Whisk egg yolks and next 2 ingredients in a glass bowl. Gradually whisk egg mixture into sugar mixture. Cook over medium heat, whisking constantly, 6 to 7 minutes or until mixture just starts to bubble. Cook, whisking constantly, 1 more minute; remove from heat.
Whisk flaked coconut and next 3 ingredients into sugar-egg mixture; transfer to a medium bowl. Place plastic wrap directly on warm filling to prevent film from forming. Let stand 30 minutes; chill 4 to 24 hours.
Meanwhile, prepare Cake Layers: Preheat oven to 350°. Beat 1 cup butter at medium speed with a heavy-duty electric stand mixer until creamy. Gradually add 2 cups sugar, beating until light and fluffy. Add 4 eggs, 1 at a time, beating just until blended after each addition.
Stir together cake flour and next 2 ingredients in a bowl. Stir together milk and 1/2 cup coconut milk in a measuring cup. Add flour mixture to butter mixture alternately with milk mixture, beginning and ending with flour mixture. Beat at low speed just until blended after each addition. Stir in 1 tsp. vanilla and 1/2 tsp. coconut extract. Spoon batter into 2 greased (with shortening) and floured 9-inch cake pans.
Bake at 350° for 25 to 30 minutes or until a wooden pick inserted in center comes out clean. Cool in pans on wire racks 10 minutes. Remove from pans to wire racks, and cool completely (about 1 hour).
Beat 1 cup heavy cream at high speed with an electric mixer until stiff peaks form. Gently fold whipped cream into chilled Filling.
Assemble cake: Split each layer in half horizontally with a serrated knife to make 4 layers. Place 1 layer, cut side up, on a serving platter; spread with 1 1/3 cups Filling. Repeat with remaining Cake Layers and Filling, ending with a Cake Layer, cut side down. Spread top and sides of cake with Fluffy Coconut Frosting.