I have a table with approx 120M records and 1.5Gb in size. This table is read only (it will never be written to) and it can be refilled from an external source at any time. So a restart of MySQL will not be a problem.
Is there any reason why I shouldn’t use a MEMORY storage engine for this?
I don’t see why not. And if you are only doing reads then you should be fine.
I have run tables of this size, and as long as your server can take it then you should be ok. If anything it would save wear and tear on your HDD(s) in the long run.
I have done things similar to this and not had any trouble.