I think there is a confusion of different layers.
First of all, page tables . This is a data structure that uses some memory to provide pointers with more memory. Given a specific virtual address, it can deconstruct it into indexes on a table. Right now, this is happening under the cover in the core, but it's possible to implement the same idea in user space.
. , , . , ? cr3. ; , cr3 .
: ? , (MIPs ) , . x86 ( ) . , . , , , , .
, , : , , , , . , , , , .
, , , , .