Preheat oven to 350 degrees. Grease a 13x9 inch baking pan or dish {or line with parchment}; set aside.
In a large bowl, whisk together the flour, sugar, baking powder, nutmeg, ginger, cinnamon and salt.
Add the milk, butter, egg and vanilla extract, orange zest. Mix until completely combined, but do not overmix. Gently fold in ½ cup of cranberries.
Spread the batter into the prepared baking pan or dish. Sprinkle with remaining cranberries.
In a small bowl, whisk together the sugar and flour. Pour in melted butter and toss with a fork until crumbly; you'll want it to form little pebbles. {If the mixture it too wet, add a teaspoon or two more flour until it reaches the right consistency.}
Sprinkle the topping over the cranberries. Bake at 350° for 40-45 minutes or until a toothpick inserted in the center comes out mostly clean and the top is lightly browned.
Let cool and sprinkle with powdered sugar if desired before serving.