Bring a large stockpot of water to boil on high heat. When water is boiling, place all pork bones into the water. Allow to boil on high heat for 5-8 minutes, or until no more blood/impurities appear in the water.
Discard the water from the bones. Wash the bones of any foam or impurities. Then fill the pot with 4 quarts of water, making sure that the water covers all the bones. Bring this pot to a boil on high heat, then reduce heat to medium for a simmer. Allow to simmer for about 2 hours.
Add salt, sugar, fish sauce, shrimp paste, crab paste, and tomato paste into the broth. Simmer for another 10 minutes. Then add meatballs.
Meatballs
Mix together ground pork, crab meat, ground shrimp, fish sauce, salt, sugar, crab paste, eggs, and pepper together. Set aside.
Using a large spoon, drop meatball mixture into the pot of simmering broth by large spoonfuls. Allow to simmer in the broth for at least 5 minutes without mixing. Mixing will break up the meatballs.
Finishing the Broth
Add in tomato wedges and fried tofu. Simmer on medium heat for another 10-15 minutes until tomatoes have just softened and the tofu has begun to absorb the broth.
Taste for seasoning and add crab paste, fish sauce, shrimp paste, sugar, or water to taste.
Vermicelli Noodles
Bring a large pot of water to boil on high heat. Add in vermicelli noodles. Follow package directions to cook. Then drain and rinse with cold water. Allow to drain at least 10 minutes before serving.
Vegetables
Bring a large pot of water to boil on high heat. Add in ong choy/morning glory. Boil ong choy/morning glory for 5 minutes. Then drain and rinse with cold water. Set aside. Repeat for bean sprouts.
Assembling a Bowl of Noodle Soup
Place cooked vermicelli at the base of the large bowl. Then add in cooked ong choy/morning glory and bean sprouts.
Pour generous amounts of broth over noodles. Include pork bones, meatballs, tofu, and tomatoes.
Top with green onion and cilantro. Serve with a wedge of lime or lemon.