The night before, rinse and wash the red beans. Place them in a large bowl. Add water till 2-inch above the beans. Soak overnight.
Next day, choose your desire container(s). I used an 8x6 airtight glass container.
Fill a kettle with water and bring to a boil. Turn to low heat and keep warm once boiling.
Rinse the red beans under water again. Transfer to a medium pot. Add enough water till 1-inch above the beans. Bring to a boil over medium-high heat. Once boiling, drain. Fill with the hot water in the kettle till 1-inch above the beans. Bring to a boil again over medium-high heat.
Turn the heat to medium-low. Cook for 40 minutes, shaking the pot occasionally to move the beans around. Add the rock sugar and cook until melted. Cook the beans until they are soft inside and cooked through, about 2 – 15 more minutes. The water level should be just above the beans when finished, if needed, add more hot water during the cooking process.
When finished, turn off the heat and cover the pot with a lid. Let them sit for 30 minutes. Separate the beans and liquid by draining through a sieve. Set aside.
In another medium pot over medium heat, add 1½ cups water and the rock sugar. Cook until the sugar is melted. Add coconut milk, evaporated milk, ¾ cup reserved red bean water, and ¼ cup water. Bring to a boil.
Meanwhile, in a medium bowl, add water chestnut flour and cornstarch. Add ½ cup water and whisk until smooth.
Once the coconut milk mixture is boiling, reduce heat to low. Stir the mixture with a wood spoon or strong spatula. While stirring, slowly add the water chestnut mixture. Keep stirring until mix well and smooth. Cook until the mixture starts to bubble and boil. Gently stir in the cooked red beans and mix.
Transfer the pudding to the prepared container(s). Smooth the surface. Let the pudding come to room temperature. Cover with a lid or plastic wrap. Cool in the fridge for at least 5 hours before serving.