Preheat oven to 350°F. Line bottoms of three buttered 9- by 2-inch round cake pans with rounds of wax paper or parchment paper and butter paper. Dust pans with flour, knocking out excess. In a bowl whisk together flour, baking powder, and salt. In a glass measure stir together milk, coconut liquid or water, and vanilla. In a large bowl with an electric mixer beat butter on medium speed 1 minute and add sugar in a slow stream, beating. Beat mixture scraping bowl occasionally, until light and fluffy, about 2 minutes. Beat in eggs 1 at a time, beating well after each addition. Reduce speed to low and beat in flour mixture in 4 batches alternately with milk mixture, beginning and ending with flour mixture and scraping bowl occasionally, until batter is just combined (do not overbeat). Divide batter among pans, smoothing tops and tapping pans on counter to allow any air bubbles to escape. Bake cake layers in middle and lower thirds of oven (arrange pans so they overlap only slightly) until a tester inserted in center comes out clean, about 30 minutes. Run a thin knife around edges of pans and invert cake layers onto racks. Remove wax paper carefully and cool cake layers completely. Cake layers may be made 1 day ahead and kept, wrapped in plastic wrap, in an airtight container in a cool dry place. (Alternatively, cake layers may be made 5 days ahead and frozen wrapped in plastic wrap and foil. Thaw cake layers in refrigerator 1 day before proceeding.) In a heavy saucepan whisk together yolks, sugar, lime juice, cream, and butter and cook over moderately low heat, whisking constantly, 5 to 7 minutes, or until mixture just reaches a boil (do not let boil). Strain curd through a fine sieve into a bowl and stir in zest. Cool curd its surface covered with plastic wrap, and chill at least 4 hours and up to 2 days. Put 1 cake layer on a cake plate and spread evenly with about half of lime curd. Sprinkle with 1/2 cup shredded fresh or sweetened flaked coconut and chill 15 minutes. Repeat layering in same manner with another cake layer, remaining lime curd, and remaining 1/2 cup coconut and top with remaining cake layer. Chill cake 15 minutes. In top of a double boiler off heat or in a large metal bowl with a hand-held electric mixer beat together frosting ingredients until combined. In double boiler or in bowl set over a saucepan of boiling water beat mixture on high speed until it holds stiff glossy peaks, about 7 minutes. (Depending on mixer and weather, this may take longer.) Remove top of double boiler or bowl from heat and beat frosting until cool and spreadable. Frost cake and coat with shaved fresh or sweetened flaked coconut. Pierce softest eye of each coconut with a metal skewer or small screwdriver and working over a bowl shake coconut, draining liquid and reserving coconut for shredding or shaving (procedure follows). Makes about a scant 3/4 cup liquid. Preheat oven to 400°F. Bake reserved drained coconuts in oven 15 minutes With a hammer or back of a heavy cleaver, break shells and remove meat, levering it out carefully with point of a strong knife or small screwdriver. Remove brown membrane with a sharp paring knife or vegetable peeler. In a food processor fitted with fine shredding blade shred coconut meat from about 1 coconut in batches or shred by hand on fine shredding side (small tear-shaped holes) of a 4 sided grater until you have about 1 cup, reserving remaining coconut meat for another use. With a vegetable peeler shave edges of coconut meat pieces until you have about 3 1/2 cups, reserving remaining coconut meat for another use. Coconuts may be shredded or shaved 1 day ahead and chilled in a sealable plastic bag.