A quick and dirty way for a much bigger map would be to have your big array store the map (as you have). When the player reaches the edge limits of the map, flip the map array. Now no more seams to worry about, and if the map is big enough, the player won't notice the terrain repeating backwards. Especially if you have random details like trees or whatever. You could even show different tiles for the new area.
I can think of a more dynamic way but a certain hangover is preventing me from thinking clearly enough to know if it'd even work... ;)