As far as I know, there are no plans to deprecate VARCHAR(MAX). VARCHAR(MAX) was replacement for TEXT. So, if there is a need, I would not hesitate to use VARCHAR(MAX).
If there is some other reason for not using VARCHAR(MAX), the maximum length you can specify is 8000.
If you really do have sizes that go over the 8000k limit, an option is to use sequential rows to insert subsets and concatenate on retrieval. The typical way I have done this is the past is to select a chunk 8000 characters long and find the first space from the tail to end the block. Repeat in a loop until size < 8000. Not pretty SQL or code by any means...