Put the milk, coconut milk, rice and salt into a large, heavy saucepan. Bring to a boil over high heat, stirring constantly. Reduce the heat to low, cover, and simmer gently, stirring occasionally, for 15 minutes. Uncover and continue simmering, stirring frequently, until the rice is tender and the pudding is reduced to about 3-1/2 cups, about 8 minutes. It's important to let the puding simmer gently, not boil, and you'll need to stir constantly toward the end of cooking to prevent scorching.
In a medium bowl, whisk the egg yolks, sugar, and coconut and vanilla extracts. Slowly add the cooked rice mixture, whisking constantly. Pour the mixture back into the saucepan, making sure to scrape the bowl. Set the pan over medium-low heat and cook, stirring and scraping the sides and bottom of the pan constantly with a wooden spoon, until the mixture has thickened and coats the back of the spoon, about 1 minute. Remove the pan from the heat. Transfer the pudding to a bowl or serving dish and lay a sheet of plastic wrap right on the pudding's surface to prevent a skin from forming. Serve warm, at room temperature, or chilled, garnished with the sliced mango and toasted coconut.