Place egg whites in a large bowl and let stand at room temperature for 30 minutes. Preheat oven to 325 degrees.
In another large bowl, beat sugar, butter and oil until well blended. Add egg yolks, one at a time, beating well after each addition. Beat in extracts.
Combine flour, baking powder, baking soda and salt; add to creamed mixture alternately with buttermilk, beating well after each addition. Stir in the coconut.
Add cream of tartar to egg whites; with clean beaters, beat on medium until stiff peaks form. Fold a fourth of the egg whites into the batter, then fold in the remaining white.
Transfer to three greased and floured 9-inch round baking pans. Bake for 25–30 minutes or until a toothpick inserted in the center comes out clean. Cool 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 ½ cup frosting and sprinkle with ⅓ 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 refrigerator.