Heat the oven to 350 degrees and get a 9 x 13 inch pan ready with non-stick cooking spray or a light coating of grease and flour. A prepared pan helps the cake release cleanly, especially once the sugar and coconut start to brown around the edges.
Put the cake mix, dry instant vanilla pudding, water, eggs, and oil into a large mixer bowl. If you want a small flavor upgrade, coconut oil can replace the canola oil and a tiny splash of coconut extract can deepen the aroma without changing the method.
Beat the batter with an electric mixer on medium speed for 2 minutes. The mixture should look smooth and thickened, with no dry pockets hiding at the bottom of the bowl.
Fold in the chopped pecans and coconut by hand just until they are evenly distributed. Stop once the add-ins are mixed through, because over-mixing at this point can knock out some of the batter’s lightness.
Spread the batter into the prepared pan and level the top. The batter will be fairly thick, which is normal and helps hold the nuts and coconut in place.
Bake for 45 minutes, then check with a toothpick inserted slightly off center. It’s done when the top looks set and the toothpick comes out clean.
Let the cake cool completely in the pan before making the frosting. This matters a lot, because any lingering warmth can cause the cream cheese frosting to soften and slide.
Blend the butter and cream cheese together in a medium bowl until smooth. Before the sugar goes in, the mixture should look creamy and unified, not lumpy and not glossy from getting too warm.
Add the confectioners' sugar and enough cream to make a smooth, spreadable frosting. The right texture should hold soft swoops on a spatula instead of running off it.
Spread the frosting over the cooled cake and finish with the coconut. The final cake should look evenly covered, with a soft frosting layer that stays put instead of melting into the surface.