In a large bowl, beat oil and sugar. Add egg yolks, one at a time, beating well after each addition. Beat in the sweet potato, water and vanilla.
In a small bowl, beat egg whites until stiff; fold into the sweet potato mixture. Combine the flour, baking powder, cinnamon, nutmeg and salt; add to potato mixture and mix well. Stir in pecans. Pour into three greased and lightly floured 9-in. round baking pans.
Bake at 350° for 22-27 minutes or until a toothpick inserted in the center comes out clean. Cool for 10 minutes before removing to wire racks.
For frosting, in a small heavy saucepan over medium heat, whisk the sugar, milk and eggs yolks until smooth. Add butter; cook, whisking constantly, until mixture is thickened and coats the back of a metal spoon, about 10-12 minutes. Remove from the heat; stir in the coconut, pecans and vanilla. Transfer to a small bowl; cool for 10 minutes.
Place one cake layer on a serving plate; spread with a third of the frosting. Repeat layers.