Few games use large images as backgrounds; even when backgrounds in games don't seem to be composed of tiles, they usually are. The NES, SNES, and GBA (and probably all consoles until 3d became the norm) have hardware accelleration for tiled backgrounds, and virtually no accelleration for full screen images. You'd probably run out of video memory trying to write a full-screen background platformer on these systems, and you certainly wouldn't have enough to achieve any cool parallax effects.
You probably want to use two 2d arrays so you can store a tile graphic index as well as physical information about the tile (e.g. whether it's solid and can be walked upon). An array of objects (types) would achieve the same effect, it's a matter of preference.
If your tiles ever need to do something crazy, replace them with an identical looking sprite. This is how the pushable tiles in Zelda worked; after they had finished sliding 16 pixels, they'd turn back into a background tile!
You probably want to use two 2d arrays so you can store a tile graphic index as well as physical information about the tile (e.g. whether it's solid and can be walked upon). An array of objects (types) would achieve the same effect, it's a matter of preference.
If your tiles ever need to do something crazy, replace them with an identical looking sprite. This is how the pushable tiles in Zelda worked; after they had finished sliding 16 pixels, they'd turn back into a background tile!