Grease a 9x13 baking dish and preheat the oven to 350 degrees. In a large mixing bowl, beat the box of cake mix, egg whites, oil, and 1 cup of water until combined. If desired, add 1/2 cup of cream of coconut for more flavor.
Pour the batter into the cake pan.
Bake for 25-30 minutes, or until a toothpick comes out with just a few crumbs. Let the cake cool at room temperature.
Use the handle of a wooden spoon to poke small holes on top of the cake. Poke 2/3 of the way down, leaving 3/4 to 1 inch of space in between each one.
In a medium bowl, whisk together the pudding, 2 cups of milk, and 1 cup of cream of coconut until it begins to thicken.
Spread the coconut cream pudding over the whole cake.
Press down gently so that it fills the poked holes. Chill the cake for 30 minutes in the refrigerator so the pudding can thicken.
Beat the heavy cream until soft peaks form. Add the powdered sugar until stiff peaks form.
Use a spatula to spread the fluffy whipped cream over the top.
Sprinkle the shredded coconut on top of the cream.