For the coconut cake batter: Preheat your oven to 350°F. Line the bottoms of two 8-inch or 9-inch round cake pans with parchment paper circles.
Add the one cup of shredded coconut to a food processor and pulse a few times.
In a medium bowl, sift together the flour, cornstarch, baking powder, baking soda, and salt. Set aside.
In a liquid measuring cup, whisk together the canned coconut milk, buttermilk, and sour cream until smooth. Set aside.
In a large bowl or stand mixer fitted with the paddle attachment, beat the softened butter and granulated sugar together on medium-high speed for 3–4 minutes until light and fluffy.
Add the eggs one at a time, followed by the egg white, vanilla extract, and coconut extract, beating well after each addition.
With the mixer on low speed, slowly alternate adding your sifted dry ingredients and the buttermilk mixture to the batter. Start and end with the dry ingredients, mixing just until combined. Do not overmix!
Gently fold in the pulsed sweetened shredded coconut with a rubber spatula until evenly distributed.
Divide the batter evenly between the prepared cake pans. Bake for 30-35 minutes, or until a toothpick inserted into the center comes out clean or with a few moist crumbs.
Cool the layers in the pans for 10 minutes, then invert them onto wire racks to cool completely before frosting.
For the coconut buttercream frosting: Beat the softened butter on medium-high speed for 2 minutes until smooth and pale. Gradually add the powdered sugar, coconut extract, pinch of salt, and canned coconut milk. Beat on high speed for 2–3 full minutes until light and fluffy.
Assemble: Place the first cake layer on a plate or cake board. Spread or pipe a generous layer of buttercream over the top. Stack the second layer, then frost the top and sides of the cake. Press extra shredded coconut all over the outside of the cake to cover. Enjoy!