OPTIONAL: char tortillas over the flame of a gas burner or in a cast iron skillet until lightly charred in spots.
PREP: Preheat oven to 350 degrees F. Lightly grease a deep 9X13-inch baking dish; set aside. Toss cheeses together; set aside. COOK BEEF: Brown beef and onions in a Dutch oven or very large saucepan until almost cooked through. Sprinkle in flour and seasonings and cook for two minutes. Reduce the heat to low and stir in the tomato paste and garlic and cook for one minute. FILLING INGREDIENTS: Stir in chicken broth, diced tomatoes, green chiles, cocoa powder, sugar and cinnamon. Bring the sauce to a simmer and continue to simmer, stirring often, until thickened, about 15 minutes. After the sauce has thickened, stir in beans, corn, olives and apple cider vinegar then remove from heat. Season with salt and pepper to taste (I add ½ teaspoon salt, ¼ teaspoon pepper).
ASSEMBLE: Spread 1 cup of meat sauce in the bottom of the prepared pan (layer will be thin). Place 2 whole tortillas in the middle and surround them by by 6 tortilla halves (see photos) to cover. Top evenly with ⅓ of the remaining meat mixture (about 2 cups), followed by 1 cup of cheeses.
Repeat with another layer of tortillas, ⅓ meat mixture, and 1 cup cheeses. Finish with final layer of tortillas, remaining mixture and remaining cheeses.
BAKE: Cover the pan with foil and bake at 350 degrees F for 30 minutes. Remove the foil and bake uncovered for an additional 20 more minutes or until the cheese is melted and casserole is heated through. Garnish with fresh tomatoes, olives, avocados, cilantro and sour cream if desired.