Preheat oven to 350 degrees. Spray a 9x13 cake pan or two 9-inch round baking pans with non-stick baking spray.
Sift together flour, corn starch, baking powder, and salt in a bowl and set aside.
Cream together the butter, sugar, and vegetable oil until creamy (about 4-5 minutes).
Add sour cream, vanilla, coconut extract to the butter mixture and mix until combined.
Add the sifted dry ingredients and coconut milk, alternately, adding 1⁄2 of each at a time and set the batter aside.
Whip egg whites in a clean bowl with clean mixing blades. Once foamy, add the cream of tartar. Continue to whip on high until a soft stiff peak forms in the egg whites.
Fold the shredded coconut and egg whites into the cake batter until there are no more streaks in color.
Pour batter into the prepared cake pan(s). Bake for 30-35 minutes for a 9 x 13-inch pan and 25-30 minutes for 9-inch cake pans, rotating the pans mid-way to ensure even baking. Test the cake for doneness with a toothpick or butter knife going into the center of the cake pan. Once it comes out clean, remove the cake from the oven and allow it to cool at room temperature until completely cool (about 45- minutes to 1 hour).
Spread coconut cream cheese frosting on top.
Frosting
Cream the cream cheese and butter on low until smooth.
Add powdered sugar, coconut milk, and vanilla. Beat on medium-high for 3-4 minutes until well combined.
Increase speed on mixer to HIGH and beat for an additional 4-5 minutes until creamy and fluffy.