Heat a large pot of salted water over high heat until boiling. Drop the cabbage leaves, a few at a time, into the boiling water. Cover and cook for about 3 minutes or until wilted and pliable. Remove with tongs to a strainer to drain. Repeat until all leaves are par-boiled. Remove the thick central ribs by cutting along both sides of the rib in a long narrow triangle. Discard ribs. Set leaves aside. (SEE NOTES BELOW)
Heat oil in a large ovenproof skillet (or Dutch oven) over medium-high heat until shimmering. Add the onion and cook until starting to caramelize, about 5 minutes. Add the garlic and crushed red pepper flakes and sauté for 30-seconds. Remove the skillet from the heat. Transfer half the onion to a large mixing bowl.
Off heat, add the ground beef, cooked rice, salt, pepper, egg and milk to the remaining onion mixture in the skillet. Stir with a wooden spoon to combine. Divide the ground beef and rice mixture evenly between the 16 cabbage leaves. Overlap the cut ends of the cabbage to prevent the filling from spilling out. Place the filling over the area that overlaps and fold in the sides. Roll the leaf tightly around the filling to create a tidy roll. Place the cabbage roll, seam side down, in the now empty skillet, Dutch oven or baking dish. Repeat until all filling is used.