Heat a 1.5-litre pot over medium heat. Add in oil, ikan bilis, onion and ginger. Cook, stirring frequently, until the onion has softened, about 5 minutes.
Add in dried shiitake mushrooms, water and fish sauce. Bring to a boil over high heat. Cover and turn the heat down to low and simmer for 30 minutes. Strain the stock over a sieve into a clean 2-litre pot. Pick out the ginger and shiitake mushrooms and discard the rest of the strained ingredients.
Remove the stalks of the shiitake mushrooms and slice the mushroom caps into slices. Add the sliced shiitake mushrooms and the ginger slices back into the pot of stock.
Bring the pot of stock back to a simmer and add in tomato, carrot, cabbage and salted mustard green leaves (if using). Cover and simmer for 30 minutes.
Add in tofu and simmer gently until heated through.
While the soup is simmering, slice fish into 1-cm thick pieces. Marinate with light soy sauce, sesame oil, Shaoxing wine and white pepper for at least 15 minutes in the refrigerator, up to 2 hours in advance.
Boil the rice vermicelli in plenty of boiling water until softened. Drain well and divide between two large serving bowls.
Bring the soup to a boil, then add in the marinated fish slices. Cook until the fish slices turned opaque and are cooked through. Taste the soup and adjust the taste with light soy sauce, salt and/or white pepper. Add in evaporated milk (if using).
Ladle the soup, fish and vegetables into the bowls of rice vermicelli. Garnish with fried shallots, coriander and spring onion and serve immediately.
The stock can be made a day in advance and stored in the refrigerator.
If you don't like rice vermicelli, you can simply serve it with a bowl of rice.
If you are cooking only ½ portion of rice vermicelli, you can cook it directly in the soup before adding in the fish slices. It is not advisable to cook the vermicelli in the soup as they will absorb a lot of soup and you may not have enough soup to serve later on.