Preheat oven to 350°F (175°C). Lightly grease a 9x13-inch baking dish.
Place the sweet potato cubes in a pot of boiling water and cook for 12–15 minutes, or until very tender.
Drain the sweet potatoes and transfer them to a large mixing bowl. Mash until smooth.
Add softened butter, brown sugar, granulated sugar, milk, eggs, vanilla, cinnamon, nutmeg, and salt. Mix until fully combined and creamy.
Spread the sweet potato mixture evenly into the prepared baking dish.
In a separate bowl, combine flour, brown sugar, pecans, and melted butter. Stir until a crumbly topping forms.
Sprinkle the topping evenly over the sweet potato base.
Bake for 30–35 minutes, or until the top is golden and crisp.
Allow to cool for 10 minutes before serving.