1. Grease 2 (9-inch) round cake pans with vegetable shortening. Lightly flour pans, and set aside.
2. Beat butter at medium speed with an electric mixer until creamy. Add eggs, 1 at a time, beating just until yellow disappears after each addition. Gradually add sugar, and beat until light and fluffy. Stir in vanilla.
3. Combine 2 3/4 cups flour, baking powder, and salt; add to butter mixture alternately with orange juice and coconut milk, beginning and ending with flour mixture. Beat at low speed just until blended after each addition. Pour batter into prepared cake pans.
4. Bake at 350° for 30 minutes or until a wooden pick inserted in center comes out clean. Cool in pans on a wire rack 10 minutes. Remove cake from pans, and cool on a wire rack 1 hour or until completely cool.
5. Cut each cooled layer in half lengthwise using a serrated knife. Chill layers 30 minutes.
6. Beat cream cheese at medium speed until fluffy. Add instant pudding mix and 2 cups milk, and beat at low speed until smooth.
7. Place pineapple in a wire-mesh strainer; press with paper towels to remove liquid. Stir pineapple and 1/2 cup grated coconut into cream cheese mixture. Chill 30 minutes or until firm.
8. Spread cream cheese mixture evenly between cake layers. Spread whipped topping on top and sides of cake, and sprinkle top and sides with remaining 1 cup grated coconut. Chill until ready to serve. Store in refrigerator.