In the Linux documentation about page table management (https://www.kernel.org/doc/gorman/html/understand/understand006.html) is said the following:
Linux instead maintains the concept of a three-level page table in the architecture independent code even if the underlying architecture does not support it.
and the following image is used to illustrate their three-level page table:

Yet, x86-32 processors support only two-level page tables as shown in the following image:

Does this mean that Linux at initialization and when allocating pages uses its three-level page table while actually setting up the two-level page table of x86-32? What's the point of using three-level page table? Only for re-usability? This still applies for x86-64 four-level page tables?
When a page-table is required, who is actually doing it? Since the structure changes, my guess would be the OS. But can the OS actually see the internal structure of the page table of the processor?