Bring a large pot of water to a rolling boil. Drop the crabs in and cook 6 to 8 minutes. (If using the smaller blue crabs, reduce the cooking time by half.) Remove the crabs and set aside to drain. To clean each crab, remove the top shell and discard the sets of feathery gills on the body. Using a small spoon, gently remove the roe and creamy tomalley, or liver, from the edges of the top shell and set aside in a small bowl. (Do not mistakenly remove the air sacs attached behind the eyes.) Next, remove the underbelly apron and discard. Rinse the crabs.
Next, snap off the legs and claws from each crab. Using a cleaver or heavy knife, cut the body into 2 or 4 pieces, about the size of 2 to 3 fingers. Using the flat side of the cleaver or a mallet, lightly crack the legs and claws so the seasonings can penetrate. Set aside in a bowl.
In a large wok or fry pan, heat the vegetable oil and butter over high heat. (You may have to cook the crab in two batches.) Wait until the oil almost smokes, then add the garlic, ginger, peppercorns, black pepper, salt, and the reserved crab roe. Quickly stir-fry until fragrant, about 20 seconds. Add the crab pieces and toss in the seasonings for about 3 minutes. Reduce the heat to low and add the chicken stock. Cover and cook for another 4 minutes. Uncover and add the red bell pepper, chili, and green onions.
Stir-fry until the red bell pepper starts to wilt and the sauce is slightly reduced, about 2 minutes. Remove from heat and garnish with cilantro. Serve immediately and provide lots of napkins.