Preheat oven to 350°F and grease a 9x13-inch baking dish.
Boil sweet potatoes in a large pot of water for 15-20 minutes until fork-tender, then drain well.
Mash the sweet potatoes in a large bowl until smooth, then stir in 1/2 cup melted butter, warm milk, granulated sugar, beaten eggs, vanilla extract, and salt until well combined.
Spread the sweet potato mixture evenly into the prepared baking dish.
In a medium bowl, combine brown sugar, flour, and 1/3 cup melted butter, mixing until crumbly, then stir in chopped pecans.
Sprinkle the pecan topping evenly over the sweet potato mixture.
Bake for 40-45 minutes until the topping is golden brown and the casserole is heated through.
Let stand for 10 minutes before serving.