Preheat oven to 350 degrees. Grease and flour a 9 x 13 pan, or spray with baking spray. (This could also be made into cupcakes or 2 8" layers.)
In a large mixing bowl, combine cake flour, sugar, baking powder, and salt. Mix on low speed to combine.
Gradually beat in softened butter and mix until crumbly. Beat in egg whites, one at a time. Beat in whole egg.
In a separate small bowl, whisk heavy cream and extracts together.
Slowly stir this mixture into the cake batter, beating the mixture until fluffy, about 3 minutes (depending on the speed of your mixer).
Pour batter into pan. I always "burp" my cakes by bouncing them on the countertops to release any bubbles, making the cake denser without a lot of holes.
Bake for 35 to 40 minutes or until a toothpick comes out clean when inserted into the center of the cake.
As soon as the cake comes out of the oven, poke holes throughout the cake with a fork.
Pour cream of coconut over the top, letting it absorb into the cake. Cool thoroughly before frosting.
In a large mixing bowl, mix cream cheese, sugar, vanilla extract, and coconut extract together. Mix on medium speed until smooth, with no lumps.
Slowly add the heavy whipping cream.
Beat on high until the cream forms stiff peaks (about 3 to 5 minutes). Scrape sides and bottom of the bowl several times while mixing.
Spread whipped icing over cake and top with coconut. Store in a tightly covered pan in the refrigerator.