По крайней мере, если я понимаю, что вы хотите, я не думаю, что компилятор сделает эту работу за вас. Он собирался производить либо 32-битный, либо 64-битный код. С 64-битным кодом указатели будут 64-битными - если вы хотите 32-битные указатели, вам придется генерировать 32-битный код (с его соразмерными ограничениями, такими как регистры, которые он будет использовать) .
Чтобы получить то, что вы хотите, я почти уверен, что вам придется разделить указатель на себя: хранить (вероятно, 64-битный) базовый адрес, а внутри вашей структуры данных хранить смещения, а не полные адреса. Вам нужно будет самостоятельно добавить базу и смещение, прежде чем пытаться отменить ссылку.