1. Preheat oven to 350 degrees F. Grease and flour a 9 by 13 inch baking pan.
2. In a small mixing bowl, whisk together flour, salt, and baking powder. Set aside.
3. Using an electric mixer, beat sugar, butter, and oil at medium high speed until light and fluffy, about 4 minutes. Scrape down sides of bowl. Add 2 egg whites and mix until absorbed. Repeat with remaining egg whites. Beat in vanilla extract. Scrape down bowl again.
4. With mixer on low speed, add half the flour mixture and mix until incorporated. Add half the milk and mix until absorbed. Repeat with remaining flour and milk. Scrape down sides of bowl and then beat batter at medium speed for 2 minutes.
5. Pour batter into prepared pan. Firmly bang pan on counter a few times to get out any air bubbles. Bake for 25 to 28 minutes, until a cake tester comes out clean. Let cake cool in pan on a wire rack.
6. Prepare topping. In a small mixing bowl, stir sweetened condensed milk and cream of coconut together until smooth. Note: If cream of coconut has separated, transfer contents of can to a microwave safe bowl and microwave on high for 1 minute. Whisk well until smooth and combined.
7. Using the handle of a wooden spoon, poke 30 holes into top of cake. Pour coconut cream mixture into holes. Pour any remaining coconut cream mixture over top of cake. Refrigerate until cake is cold (about 2 hours). Note: Cake can be prepared up to this step one day in advance.
8. Whip cream and confectioners' sugar until stiff peaks form. Combine with whipped topping until evenly blended. Spread topping on top of cake and sprinkle with shredded coconut. Refrigerate at least one half hour, up to 4 hours, until serving time.
9. To serve, cut cake into 16 pieces.
Source: Hannaford Fresh Magazine, May - June 2007