Reconstitute the dry mushrooms in 3 cups of boiling water for 30 minutes. Retain the stock and chop the mushrooms into quarters. Trim off any hard stems.
In a skillet, toast the spices--the cinnamon, cardamom, cloves, red chili peppers, black peppercorns, coriander seeds, cumin seeds and fennel seeds and the dagad phool, if using -- in a teaspoon of oil until they are a couple of shades darker and very fragrant.
Add the sliced onion and poppy seeds to the skillet and roast over medium-high heat until the onion starts to brown, about two minutes. Take care not to burn the spices and stir-fry constantly.
Remove the spices to a plate, let them cool, then add to the blender along with tomatoes. Blend into a smooth paste. Set aside.
Heat a teaspoon of oil and add the chopped shallot. Saute until the shallots turn golden-brown, then add in ginger garlic paste and saute another minute
Add the mushrooms, saute for a couple of minutes, then add the blended masala paste with the mushroom stock from reconstituting the mushrooms. You want this gravy to be thin so add more water or vegetable stock if needed.
Let the xacuti curry come to a boil, then turn the heat down so it continues to boil gently, cover, and let it cook 20 minutes or until tiny specks of fat float on the top.
Add the coconut milk and mix well. Cook another five minutes. Add salt to taste and stir in cilantro. Turn off the heat.