Adjust oven racks to upper and lower thirds. Heat oven to 350°F. Spray three 9” round cake pans with baking spray; line bottoms of pans with parchment paper and spray paper; set aside.
In small bowl, whisk together flour, baking powder, and salt; set aside. In separate small bowl, whisk together egg whites, cream of coconut, coconut milk and vanilla until well combined; set aside. In large bowl, using electric mixer on medium speed, beat together butter and sugar, occasionally scraping down sides of bowl with spatula, until light and fluffy, about 4 minutes. With mixer on low speed, alternately beat in reserved flour mixture and reserved coconut mixture in thirds, beginning and ending with flour mixture, beating until just blended. Then, continue to beat until smooth, about 1 minute.
Divide batter evenly among prepared pans; spread evenly with offset spatula. Bake until toothpick inserted in center comes out clean, 20-25 minutes. Transfer pans to cooling racks to cool 10 minutes. Run thin knife around edges of pans; invert onto wire racks; cool completely. Remove and discard parchment paper.
As cakes cool, spread 1½ cups shredded coconut on baking sheet. Bake at 350°, stirring occasionally, until toasted, 8-10 minutes; set aside.
In small saucepan, whisk together cream of coconut, coconut milk, flour, and salt until smooth. Cook over medium heat, whisking constantly, until mixture thickens and comes to boil, about 3 minutes. Reduce heat to low and cook, whisking constantly, 2 minutes more. Pour coconut mixture into small bowl; cool 10 minutes. Cover loosely with plastic wrap and refrigerate until cold, about 1 hour.
In large bowl, using electric mixer on medium speed, beat together butter and confectioners' sugar until smooth and fluffy, about 2 minutes. Beat in cold coconut mixture, 1 tablespoon at a time, until smooth. Add coconut extract and beat until light and fluffy, about 1 minute more; set aside.
In small saucepan, stir together cream of coconut, rum, and cinnamon or nutmeg. Set pan over medium heat; cook until rum mixture just comes to simmer, and then set aside.
Using pastry brush, brush one cake layer with 2 tablespoons rum syrup. Place cake brushed-side down on cake plate. Brush top of first layer with 2 tablespoons syrup; spread with ½ cup reserved frosting, then sprinkle with ½ cup untoasted coconut. Repeat second layer with 2 tablespoons syrup per side of cake, ½ cup frosting and ½ cup untoasted coconut. Brush third layer with 2 tablespoons syrup; place brushed-side down on top of second layer. Brush top of cake with remaining syrup. Spread entire cake with remaining frosting, smoothing top and sides. Using hands, press reserved toasted coconut onto sides of cake. Sprinkle top of cake with remaining ½ cup untoasted coconut. Serve.