type pointer workaround?

BlitzMax Forums/BlitzMax Beginners Area/type pointer workaround?

Have you actually tried using Handlefromobject/handletoobject?
Perhaps
those commands will have a serious performance impact.

doesn't match your opinion on 'serious performance impact'. Maybe it is quick enough for your needs.
Personally, I would get it working and then worry about it later. Maybe the time it takes on this step can be saved somewhere else.
<edit> Done a quick test :
SuperStrict
Type ttest
	Field x:Int = 5
End Type
Local mytest_base:ttest = New ttest
Local t1:Int=MilliSecs()
For Local loopy:Int= 0 To 10000
	Local mytest_handle:Int = HandleFromObject(mytest_base)
	Local mytest1:ttest = ttest(HandleToObject(mytest_handle))
Next
Local t2:Int=MilliSecs()
For Local Loopy:Int = 0 To 10000
	Local mytest2:ttest = mytest_base
Next
Local t3:Int = MilliSecs()
Print (t2-t1) +  " " + (t3-t2)

which suggests the performance impact is not too severe.