There are
631 mi
from Allen, TX to Hannibal, MO
That's the driving distance. It would take 12 hours to go from Allen, Texas to Hannibal, Missouri.
The flight distance (direct flight from Allen, TX to Hannibal, MO) is 543.38 mi.
631 mi = 1,016.19 kms