Preheat oven to 350 degrees. Prepare 3 8" round pans by greasing and flouring well. Pierce coconut and drain milk, reserve. Grate coconut and set aside.
FOR CAKE- Cream butter in large bowl. Gradually add sugar, beat until fluffy. Add eggs, one at a time, beating well after each.
Sift flour with baking powder and salt. Add flour mixture (a little at a time), alternating with milk and vanilla, to butter mixture. Mix well afer each addition. Beat only until smooth, overbeating will yield a dry cake. Pour equally into prepared pans and bake 20-25 minutes, until cake tester inserted in cake comes out clean. Cool cakes completely and trim tops to achieve a flat surface. Pour reserved coconut milk equally over tops of each layer.
FOR FROSTING- cream butter and cream cheese until fluffy. Mix in vanilla, then add confectioner's sugar, a cup at a time, mixing well after each addition. Mix in grated coconut. Remove about 3/4 c. frosing to a small bowl, and add drained crushed pineapple. Mix well.
Spread pineapple/coconut frosting only between each layer, and use additional frosting to coat top and outside of cake.