Preheat oven to 350 degrees F and grease and flour 2 (9-inch) cake pans.
In an electric mixer or using a hand beater, cream butter and sugar until fluffy. Add coconut oil and eggs 1 at a time. In a mixing bowl or on a sheet of parchment paper, combine flour, salt, baking soda and powder. To mixer add coconut milk and flour to creamed mixture alternately, beginning and ending with flour. Pour batter into prepared pans and bake for 25 to 28 minutes. Allow to cool 10 minutes then unmold onto rack(s) over a sheet pan and allow to cool completely.
For Glaze: In a medium bowl combine sour cream or yogurt, sugar, lime zest and juice, coconut milk, shredded coconut.
With a bamboo skewer, poke holes in cake and spread glaze on both sides of both cakes. Cover with plastic wrap, chill until ready to frost cake.
In an electric mixer or using a hand mixer beat together the butter, shortening, and cream cheese until well blended and fluffy. Add the powdered sugar gradually at low speed. Beat in coconut milk and vanilla. Frost cake. Coat top and sides with shredded coconut.