For the cake: Butter and flour two 9-inch baking pans. Preheat the oven to 350 degrees.
Cream together butter and sugar until light and fluffy.
Add eggs one at a time, mixing completely between each egg. Add in vanilla.
Combine the flour, baking powder, and salt.
Add flour mixture and milk alternately to the butter and sugar mixture, beginning and ending with flour. Scrape down sides of bowl and mix just till combined.
Divide batter into bowls depending on how many colors you are using. You want one base color (like black or white) and then a few bright colors. For the rainbow one, use a white base with bright pink, orange, yellow, neon green, bright blue, and purple. The other has a black base with bright pink, purple, yellow, and orange. You want a little less than half of the batter for the base color and the rest divided evenly.
Place a scoop of your base color into the center of each pan. Place a slightly smaller scoop of a brighter color on top. Repeat with another scoop of the base color right in the center. You can drop the pan on the counter to help flatten out the batter. Keep repeating this process (it will look kind of like a target; base color, bright color, base color, another bright color, etc.) until your batter is gone.
Bake for 25-30 minutes, or until a toothpick or cake tester inserted in the center comes out clean. Remove and allow to cool for about 10 minutes, then remove from pans and cool completely.
For the frosting: Cream the butter till smooth. Add in the vanilla, powdered sugar, and milk. Beat for about 3 minutes till fluffy. Add food coloring if desired.
To assemble: Using a knife or a cookie cutter, cut out hexagons from the cooled cakes. Carefully slice the hexagons into 2 layers. Pipe/spread a couple tablespoons of the buttercream filling on the bottom layer and place the second layer back on top, making sure the sides match back up.
Melt the candy melts over a double boiler, in a bowl set over hot water, or in the microwave for 30 second intervals until melted but not too hot. You may need to keep reheating throughout this process if the candy melts begin to harden.
Place the hexagons on a wire rack over a cookie sheet. Pour the melted candy melts over the tops of the cakes. Use an offset spatula or small knife to help make sure the candy melts cover all the edges. Drizzle the different colored candy melts, or black candy melts, over the tops of the cakes.