yup, basically you just need a function to replace "get ground height" in your tilt routine...
Something like this i'd imagine

:
Function Get_Land_Height(obj,x#,z#)
y#=10000-intersect object(obj,x#,10000,z#,x#,0,z#)
if y#=10000 then y#=0
Endfunction y#
obj is the model you are using
x# and z# are the coordinates above the model, just like get ground height.
This will only work for models that are structured similarly to matrices, so it won't work very well for a building model for instance.
However after writing that, i realised there is no intersect object function in dbc, although if i remember correctly, someone released a library of functions for dbc and intersect object was one fo them.