Police in the US state of Colorado are about to make a second attempt to enter the flat of James Holmes, suspected of shooting dead 12 people and injuring 58 at a Batman film screening on Friday.
They spotted booby-traps and wires in an initial reconnaissance of his home.
A man in a gas mask and body armour threw tear gas canisters at a midnight screening, then fired on the crowd in Aurora, a suburb of Denver.
Mr Holmes, 24, was arrested outside the cinema, police said.
FBI agents and police discovered his flat was booby-trapped when they used a camera at the end of a 12-foot pole to look inside.
Technicians made a first attempt on Friday to disarm the traps, believed to include explosives, but withdrew when it became clear the property was too dangerous to enter.
Federal government experts are due to arrive on Saturday for a second attempt.
Aurora police chief Dan Oates said the apartment contained "things that look like mortar rounds", adding: "I've personally never seen anything like what we've found in there."
Residents were evacuated from the building and four other premises nearby.
Firefighters are monitoring the block of flats for gases in an effort to identify what chemicals might have been used in the booby-traps.
Hundreds of mourners joined a vigil near the cinema in Aurora on Friday night, leaving candles and flowers outside.
James Holmes was said to be armed with a rifle, a shotgun and two pistols when he launched his assault on the midnight screening of the new Batman movie The Dark Knight Rises.
He also bought 6,000 rounds of ammunition over the internet, Mr Oates said.
All weapons and ammunition were purchased legally within the past few months, he said.
Thirty people remained in hospital, Colorado Governor John Hickenlooper said, with 11 of those in a critical condition.
Authorities have established no terrorism link, nor any motive, and Mr Holmes had no criminal record other than a speeding fine.
He will appear at Arapahoe County District Court, in nearby Centennial, Colorado, on Monday at 09:30 local time (15:30 GMT).