Make the cake: Grease 3 (9-inch) cake pans and line the bottom of each pan with parchment paper. Preheat the oven to 350°F. Whisk together the flour, baking powder, and baking soda in a medium bowl. Set aside.
Beat 1 cup butter and 1½ cups granulated sugar at medium-high speed with an electric mixer until light and fluffy. Add the eggs, one at a time, beating after each addition until the yellow disappears.
Add the flour mixture alternately with 1 cup cream of coconut in three additions, beginning and ending with the flour. Beat in 1 teaspoon vanilla extract and ½ teaspoon coconut extract.
Divide the batter evenly between the prepared pans. Bake for 18 minutes or until a wooden pick inserted in the centers comes out clean. Remove the cakes from the oven and let cool in their pans for 5 minutes. Run a knife around the edges and turn out onto cooling racks to cool completely.
While the cakes bake and cool, make the coconut filling: Whisk together the coconut milk, ½ cup granulated sugar, and cornstarch in a medium saucepan. Cook over medium-high heat, whisking constantly, until the mixture thickens and coats the back of a wooden spoon.
Remove from the heat and whisk in 2 tablespoons butter and 1 cup coconut flakes. Let cool completely. (Set over an ice bath to cool quickly.)
Make the coconut buttercream: Beat 1 cup butter at medium speed with an electric mixer until fluffy. Beat in 3 tablespoons cream of coconut. Add the powdered sugar, 1 cup at a time, until light and fluffy. Beat in 1 teaspoon vanilla extract and ½ teaspoon coconut extract.
Assemble the cake: Place one cake layer on a cake plate or stand. Pipe about ⅓ cup of the buttercream around the top edge of the cake.
Spread half of the filling within the edges of the buttercream. Repeat with the second cake layer, ⅓ cup coconut frosting, and the remaining half of the filling. Place the remaining cake layer on top. Spread the remaining buttercream on the top and sides of the cake. (It will just coat the cake.)
Press the remaining shredded coconut flakes on the sides and top of the cake. Refrigerate until ready to serve. Garnish with edible flowers, if desired.