Preheat oven to 350F. Place 15 cupcake liners in 2 muffin pans and set aside.
To make the cake, whisk together the flour, cocoa, sugar, salt, baking powder, and baking soda in a large bowl.
Add in the coconut milk and oil, and mix vigorously. Add in the vinegar and vanilla, and mix until well combined.
Divide the cake batter between the prepared cupcake liners, and bake for 17-20 minutes, until a toothpick inserted in the center comes out with just a few crumbs. Set aside to cool completely before filling.
While the cupcakes bake, prepare the coconut pecan frosting. In a small cup, whisk together the nondairy milk and cornstarch until smooth and lump-free.
Combine the brown sugar and coconut milk in a small pot, and heat over medium. Cook, whisking often, until mixture comes to a boil. Lower heat to a simmer. Continue to cook for about 5 minutes until slightly thickened.
Stir in the milk + cornstarch mixture, and whisk vigorously until mixture becomes very thick and glossy. Remove from heat and stir in the shredded coconut, pecans, and pinch of salt. Mix well. Allow frosting to cool completely before using.
Finally, make the chocolate frosting. Combine the vegan butter and vegan shortening in the bowl of a stand mixer fitted with the paddle attachment. Beat until smooth and creamy, then add in the vanilla.
Mix in the cocoa and then the powdered sugar, one cup at a time until frosting is thick and holds its shape. If it is too thick, add some nondairy milk to smooth it out. Transfer the chocolate buttercream to a piping bag fitted with the 1M tip.
To assemble the cupcakes, scoop about 1 tablespoon of the cooled coconut-pecan frosting on top of each cupcake and smooth it down. Pipe the chocolate frosting on top, and finish with a pecan half on each cupcake. Enjoy!