From my understanding on the many-to-one model, all user threads are bound to a LWP which is then bound to a kernel thread. The threading library is responsible for scheduling the threads onto the LWP and the kernel only sees a single threaded application.
So, does the mapping happen the moment the program starts(main thread is executed) or it happens somewhere in between the program execution?