- The beans. Rinse the beans, then scoop them into a large (6-quart) pot (preferably a Dutch oven or Mexican earthenware olla) and add 2 quarts water. Bring to a boil, then reduce heat to medium-low and simmer, partially covered for 1 hour.
- The pork. While the beans are cooking, sprinkle the pork liberally with salt. In a very large (12-inch) skillet, heat 1 tablespoon of the lard or oil over medium-high, and brown the pork on all sides in an uncrowded layer - it'll take about 10 minutes. (With a smaller skillet you'll have to brown the pork in 2 batches.) Remove the pork to a plate and set the pan aside. When the beans have cooked an hour, add the pork to the pot, along with more water, if necessary, so that everything is submerged. Partially cover the pot and continue simmering, until meat and beans are tender, about an hour more.
- The tomato-habanero sauce. Return the pork-frying skillet to medium heat and drizzle in a little more lard or oil, if necessary, to coat the bottom. Add half of the sliced onion and fry until golden, about 7 minutes. In a blender, coarsely puree the tomatoes and the juices. Now, either cut a slit in the side of the habanero(s) - this will give you some habanero fruity flavor without much heat - or cut the habanero(s) in half. Add to the onions along with the tomato puree, then simmer, partially covered, stirring often for 10 minutes or so, until reduced to the consistency of a thick sauce (it shouldn't be dry). Taste and season with salt, usually 1 teaspoon.
- Finish the beans. When the beans are tender, scrape half the tomato sauce into them, add a little more water to the pot, if necessary, to ensure that the pork and beans are nicely covered with liquid. Taste and season the beans with salt, usually about 1 1/2 teaspoons.With a large spoon, carefully remove the pork from the beans and transfer it to an ovenproof dish, cover with foil and keep warm in a low oven. Pour the beans into a colander set over a large bowl, return the beans to the pot and measure 2 1/2 cups of the broth into a saucepan to use for the rice. Return the remaining bean broth to the beans. There should still be enough broth to yield somewhat soupy beans; if not add more water.
- The rice. Add 1/2 teaspoon salt to the pan of bean broth and set over medium heat. In a medium-size (3-quart) saucepan, heat the remaining 2 tablespoons of the lard or oil over medium. Add the rice and remaining onion and cook, stirring regularly, until the rice turns from translucent to milky-white, about 5 minutes. Stir in the garlic and cook a minute longer, then pour in the hot bean broth. Stir once, scrape down any rice kernels clinging to the side of the pan, cover and cook over medium-low for about 15 minutes; uncover and check a grain of rice - it should be nearly cooked through. If the rice is just about ready, turn off the heat, re-cover and let stand for 5 to 10 minutes longer to complete the cooking. If the rice seems far from done, continue cooking for 5 minutes or so, retest, then turn off the heat and let stand for a few minutes more.
Serve. When you're ready to serve, reheat the tomato sauce and remove the habanero chiles. Ladle the beans into six small bowls. Spoon the rice onto each of 6 large warm dinner plate and nestle the pork in the center. Spoon a little of the warm sauce onto one side of each plate. Onto the other side, arrange a few slices of avocado. Garnish with sprigs of cilantro. Serve right away, passing the lime wedges and chopped xnipec salsa, if you wish.
To make about a cup of xnipec salsa:
1/2 small red onion, finely chopped
1 tablespoons fresh lime or sour orange juice
6 radishes, chopped into small dice or matchsticks
1/2 fresh habanero chile, stemmed, seeded and finely chopped
A dozen or so large sprigs of cilantro, chopped
Scoop the onion into a strainer and rinse under cold water. Shake off as much water as possible, then transfer to a small bowl and stir in the juice. Add the remaining ingredients, season with salt, usually about 1/2 teaspoon, and it's ready.