Preheat oven to 350 degrees.
Butter and flour 2 9-inch cake pans with 2-inch sides (or spray with non-stick baking spray).
In a medium bowl, combine the flour, baking powder, baking soda and 1/2 tsp. salt.
Using a stand mixer, beat together the sugar, butter, sweetened cream of coconut and orange juice until fluffy.
Beat in the egg yolks and vanilla.
On low speed, add the dry ingredients, and mix just until blended.
Add the butter milk and mix just until blended.
Remove the batter to another bowl and set aside.
Wash and dry the bowl and beater thoroughly.
Add the eggs whites to clean, dry mixing bowl and beat egg whites with a pinch of salt until stiff but not dry.
Fold the beaten egg whites into the cake batter until combined. Do not over mix.
Divide the batter into two prepared pans.
Bake 40 to 45 minutes until a tester inserted in the middle comes out clean.
Cool cakes in pans for 10 minutes, then run a sharp knife around the pans, turn the cakes out onto a rack, and let them cool completely.
Meanwhile, prepare the cream cheese frosting.
Combine the cream cheese and butter together and mix until light and fluffy. Add the vanilla and stir in the confectioners sugar until smooth.
When cakes are completely cool, frost with the cream cheese frosting. Spread 1 cup of cream cheese frosting over the first layer and sprinkle 1 cup shredded coconut over the top.
Top with second cake layer. Spread remaining frosting over the top and sides of the cake and sprinkle with remaining coconut, gently pressing into the sides to adhere.
Cover with plastic wrap and refrigerate. Let stand at room temperature for at least 2 hours before serving.