According to the tip in TODO file:
"nmg_bot() and nmg_from_bot() only work with shells. verify that all callers iterate over all shells or write a model version that does a complete conversion correctly."
I write a new patch to add a function 'nmg_bot_list' which convert [model*] to [rt_bot_list*]. I hope this patch could meet the requirement. If so, I will continue to improve it then.
What's more, I wonder that some function just work on the first shell of nmgregion, and the first nmgregion of model. In my opinion, it should deal with all of them(shells/nmgregions). Is there any special purpose for that?