Heat your oven to 350 degrees. Spray a 9x13in glass dish with a non stick spray and set aside.
In a large bowl, whisk together the flour, cocoa, baking powder, baking soda and salt. Set aside. In the bowl of your stand mixer, with the paddle attachment fixed, combine the sugar, eggs, milk, water, oil and vanilla until just blended and creamy. Gradually add in the flour mixture in 1/2 cup increments until all is incorporated. If you find the batter to be on the thick side out a couple tablespoons more of water. Pour the batter into the prepared dish and bake at 350 for about 30 minutes or until a toothpick comes out clean. Cool the cake upside down on a wire rack for about 20 minutes then transfer the cake to a refrigerator for cool for at least another 2 hours or up to 12 hours.
When your cake has completely cooled, crumble the cake into a bowl with your hands until the cake crumbs are fine. Set the bowl aside.
In another bowl of you stand mixer, with the whisk attachment fixed, cream together the cream cheese and butter until nice and creamy. Slowly add the powdered sugar into 1/2 cup increments until all is incorporated. Add the milk until the frosting is the consistency that you desire. Add the frosting into your crumbled cake mixture, and mix with a heavy wooden spoon (you're going to need it) until the ingredients are incorporated.
Begin rolling your "dough" into 1-2in cake balls. If you find the balls are falling apart add a tablespoon at a time of milk until the balls begin to come together. On a large baking sheet, line with parchment paper, place your balls. You should be able to get about 30 balls in total. Place lollipop sticks in each ball, only going down about half way down the ball. Place the balls in the freezer until completely hardened, about 4 hours or up to 12 hours.
After your balls have hardened, start preparing your chocolate. Using a microwave safe deep bowl, melt your chocolates in 30 second increments, stirring in between each increments until all is melted. Dip the balls into the melted chocolate, making sure the ball is fully covered. Let drip for a minute or two upside down then poke the stick (right-side up) into your styrofoam block (which I HIGHLY recommend you use for this). If you do not have a styrofoam block, place ball side down onto a piece of parchment paper. While the chocolate is still wet, garnish with any sugars or sprinkles you desire.
Wrap up to keep or refrigerate to keep longer =).