Place egg whites in a large bowl; let stand at room temperature for 30 minutes. In another large bowl, beat the sugar, butter and oil until light and fluffy. Add egg yolks, one at a time, beating well after each addition. Beat in extracts.
Combine the flour, baking powder, baking soda and salt; add to creamed mixture alternately with buttermilk, beating well after each addition. Stir in coconut.
Add cream of tartar to egg whites; beat until stiff peaks form. Gently fold into batter.
Transfer to three greased and floured 9-in. round baking pans. Bake at 325° for 25-30 minutes or until a toothpick inserted near the center comes out clean. Cool for 10 minutes before removing from pans to wire racks to cool completely.
For frosting, in a small bowl, beat cream cheese and butter until fluffy. Add confectioners’ sugar and extract; beat until smooth.
Place one cake layer on a serving plate; spread with 1/2 cup frosting and sprinkle with 1/3 cup coconut. Repeat. Top with remaining cake layer. Spread remaining frosting over top and sides of cake; sprinkle with remaining coconut. Refrigerate for 2 hours before cutting. Store in the refrigerator.